"Reverse"
By Brett Bilbrey and Mike Toth
Original Program Listing: ARCADIAN, 1, no. 5 (March 23, 1979): 38.
Corrections:              ARCADIAN, 1, no. 6 (May 4, 1979): 46


"Reverse" has the distinction of being in the "Arcadian" newsletter's first 
issue that printed BASIC programs (but the fifth issue overall).  Four programs 
were included in that issue.  One other was "Simon" by Brett Bilbrey.  For a 
short while half of the programs in the Bally Arcade's BASIC library were 
written in some way by Brett!


"Reverse" is a One Player Game that uses one Hand Controller.

The object is to get 9 number in order (smallest at the left) that are 
initially in random order.  Use the knob to identify the numbers to be moved, 
and the trigger to move them.


There is a modification of "Reverse" by Dick Houser included in the 
"Reverse" archive.  It is part of the "Bob Fabris Collection."


In September of 2012 Brett was asked on the Bally Alley Yahoo discussion board, 
"did you and Mike base this game on a common PD game available in one of the 
early home computer BASIC books? If so, do you remember which book?"  Brett 
replied, "Hmmm.... '101 BASIC computer games' by David H. Ahl, Page 135 I 
think..."  Brett is referring to "BASIC Computer Games," edited by David H. 
Ahl, and published 1978.  It was also known as "101 BASIC Computer Games."  
Here are the directions to "Reverse" taken from " BASIC Computer Games:"


The game of REVERSE requires you to arrange a list of numbers in numerical 
order from left to right.  To move, you tell the computer how many numbers 
(counting from the left) to reverse.  For example, if the current list is:

     2 3 4 5 1 6 7 8 9

and you reverse 4, the result will be:

     5 4 3 2 1 6 7 8 9

Now if you reverse 5, you win!

There are many ways to beat the game, but approaches tend to be either 
algorithmic or heuristic.  The game thus offers the player a chance to play 
with these concepts in a practical (rather than theoretical) context.

An algorithmic approach guarantees a solution in a predictable number of moves, 
given the number of items in the list.  For example, one method guarantees a 
solution in 2N - 3 moves when the list contains N numbers.  The essence of an 
algorithmic approach is that you know in advance what your next move will be.  
One could easily program a computer to do this.

A heuristic approach takes advantage of "partial orderings" in the list at any 
moment.  Using this type of approach, your next move is dependent
essence of an algorithmic approach is that you know in advance what your next 
move will be.  One could easily program a computer to do this.

A heuristic approach takes advantage of "partial orderings" in the list at any 
moment.  Using this type of approach, your next move is dependent on the way 
the list currently appears.  This way of solving the problem does not guarantee 
a solution in a predictable number of moves, but if you are lucky and clever, 
you may come out ahead of the algorithmic solutions.  One could not so easily 
program this method

In practice, many players adopt a "mixed" strategy, with both algorithmic and 
heuristic features.  Is this better than either "pure" strategy?

The program was created by Peter Sessions of People's Computer Company and the 
notes above adapted from his original write-up.

